Modules for Crosscutting Models
نویسندگان
چکیده
Traditional programming languages assume that real-world systems have “intuitive”, mind-independent, preexisting concept hierarchies. However, our perception of the world depends heavily on the context from which it is viewed: Every software system can be viewed from multiple different perspectives, and each of these perspectives may imply a different decomposition of the concerns. The hierarchy which we choose to decompose our software system into modules is to a large degree arbitrary, although it has a big influence on the software engineering properties of the software. We identify this arbitrariness of the decomposition hierarchy as the main cause of ‘code tangling’ and present a new model called Caesar, within which it is possible to have multiple different decompositions simultaneously and to add new decompositions on-demand.
منابع مشابه
Modeling Crosscutting Concerns with Roles
Modularization allows the development of independent modules and their reuse. However a single decomposition strategy cannot neatly capture all the systems concerns. Thus some concerns are spread over several modules – the crosscutting concerns. To cope with this we need to have other class composition techniques than those available in traditional Object Oriented programming languages. One of ...
متن کاملModules for hierarchical and crosscutting models
Good separation of concerns in software is the key for managing growing complexity. The most important task of programming languages with respect to this goal is to provide means to express the mental models of the domain experts as directly as possible in the programming language. Since the advent of ‘structured programming’, programming languages feature modules for hierarchical models: We ca...
متن کاملEvent Modules - Modularizing Domain-Specific Crosscutting RV Concerns
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due to the complexity of RV techniques, there is an increasing interest in achieving abstractness, modularity, and compose-ability in their implementations by means of dedicated linguistic mechanisms. This paper defines a design space to evaluate the existing domain-specific languages for implementing...
متن کاملModular Reasoning for Crosscutting Concerns with Contracts
Separation of concerns into modules is an active research area since four decades. Modularization is beneficial for complex software systems, as it enables a divide-and-conquer strategy to software development and maintenance. A key ingredient for modularization is that modules can be studied to a certain extent in isolation, which is important for program comprehension as well as for verificat...
متن کاملAspect-Oriented Requirements Engineering for Advanced Separation of Concerns: A Review
Software engineering was introduced to cope with software crisis with two fundamental principles: separation of concerns and modularity. Many programming paradigms have been proposed and used while considering the fundamental principles from the early days. Complex software systems were successfully modularized but complete separation of concerns is still impossible to achieve using today’s mos...
متن کاملObject Teams: Improving Modularity for Crosscutting Collaborations
In this paper, we investigate whether module concepts for capturing multi-object collaborations can be effectively used to implement crosscutting concerns in reusable, independently developed modules for a-posteriori integration into existing systems. A new kind of collaboration module, called Object Teams, is proposed which combines the best features of existing approaches, further enhances th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003